// 登录
$(function () {
    check_name = false
    check_psw = false
    func_check_name()
    func_check_psw()

    function func_check_name() {
        $("form.login input[name='user']").blur(function () {
            console.log("开始检查账号")
            username = $(this).val()
            if (username == "") {
                $(this).next().html("用户名不能为空").show()
                check_name = false
            } else { //如果不为空
                $(this).next().hide()
                check_name = true

            }
        })

    }

    function func_check_psw() {
        $("form.login input[type='password']").blur(function () {
            console.log("开始检查密码")
            password = $(this).val()
            if (password) {
                // 如果输入了密码
                check_psw = true
                $(this).next().hide()
            } else {
                check_psw = false
                $(this).next().html("密码不能为空!").show()

            }

        })
    }

})
$("#login_submit").click(function () {

    if (check_name && check_psw) {
        $.post(
            "/login/",
            {
                "username": username,
                "password": password,
                "status": "login",
                csrfmiddlewaretoken: "{{ csrf_token }}"
            }, function (res) {
                console.log(res.status_num)
                if (res.status_num == 1) {
                    $("form.login input[type='user']").prev().html("账号或密码错误!").show()
                } else {
                    window.location.href = "/index/"
                }
            }
        )
    }
})

//注册
$(function () {
    check_name = false
    check_psw = false
    bind_email = false
    check_repsw = false
    func_check_name()
    func_check_psw()
    func_check_email()

    function func_check_name() {
        $("form.register .user1").blur(function () {
            username = $(this).val()
            if (username == "") {
                $(this).next().html("用户名不能为空").show()
                check_name = false
            } else { //如果不为空
                reg = /[0-9a-zA-Z]{8,16}/;
                if (reg.test(username)) { //一个简单的账号验证,验证是否合法
                    //验证通过 Ajax发送请求验证账号是否存在
                    $.post("/check_user/", {
                        "username": username,
                        //放跨域攻击
                        csrfmiddlewaretoken: '{{ csrf_token }}'
                    }, function (res) {
                        // 账号不允许注册
                        if (res.status_num == 1) {
                            check_name = false
                            $("form.register input.user1").next().html("用户名已经存在!").show()
                        } else {//账号验证通过
                            check_name = true
                            $(this).next().hide()
                        }
                    })
                } else {
                    //验证不通过
                    $(this).next().html("用户名为8~16的数字字母组成").show()
                }

            }
        })
    }


    function func_check_psw() {// 查询密码是否正确
        //密码框失去焦点时触发方法
        $("form.register input[name='password']").blur(function () {
            //先判断用户是否输入了空值
            password = $(this).val()
            console.log(password)
            if (password == "") {
                $(this).next().html("您输入了空值").show()
            } else {// 输入不是空的值
                //先用正则判断输入的密码是否合法
                reg = /[0-9a-zA-Z]{8,16}/
                if (reg.test(password)) { // 如果合法
                    $(this).next().hide()
                    check_psw = true
                } else {
                    $(this).next().html("密码必须为8-16位的字母和数字组合而成!").show()
                    check_psw = false
                }
            }


        })
        //判断再次输入的密码是否和第一次输入的密码相等
        $("form.register input[name='re_password']").blur(function () {
            re_password = $("form.register input[name='re_password']").val()
            if (re_password == "") {
                //如果为空
                $(this).next().html("请再次输入密码!不能为空值")
            } else {//不为空
                //如果两次输入的相等
                if (re_password == password) {
                    $(this).next().hide()
                    check_repsw = true

                } else {//不相等
                    $(this).next().html("两次输入的密码不一致!").show()
                    check_repsw = false
                }
            }
        })
    }

    //对于邮箱的校验
    function func_check_email() {
        $(".register input[type='email']").blur(function () {
            email = $(this).val()
            //判断输入的邮箱是否为空
            if (email == "") {// 如果为空
                $(this).next().html("您输入了空值").show()
            } else {//如果不为空
                // 判断运营商

                //Ajax上传后台校验邮箱是否绑定账号
                $.post("/check_email/", {
                        "email": email,
                        //防止跨域攻击
                        csrfmiddlewaretoken: '{{ csrf_token }}'
                    }, function (res) {
                        console.log("回调函数执行")
                        if (res.status_num == 0) {
                            console.log("邮箱没有绑定过")
                            bind_email = true
                            $(this).next().html("邮箱没有绑定过")
                        } else {
                            console.log("就不给你注册!")
                            bind_email = false
                            $("#email").next().html("邮箱已经被绑定过了!!").show()
                        }
                    }
                )
            }
        })
    }

    // check_name = false
    // check_psw = false
    // bind_email = false
    // check_repsw = false
    check_email = 0
    $("#submit2").click(function () {
        if (check_name == true && check_psw == true && check_repsw == true && bind_email == true) {

            email = $(".register input[type='email']").val()
            $.post(
                "/send_code/", {csrfmiddlewaretoken: '{{ csrf_token }}', "email": email}
                , function (res) {
                    console.log(res.code_num)
                    $(this).addClass("disable")
                    var code_num = res.code_num
                    $("form.register input[name = 'auth_code']").blur(function () {
                        ipt_code = $("form.register input[name = 'auth_code']").val()
                        if (ipt_code == code_num) {
                            $("#submit2").next().hide()
                        } else {
                            $("#submit2").next().html("输入的验证码有误!!").show()
                            check_email = 0
                        }

                    })
                })
            // 按钮不可点击,加上倒计时
            $(this).prop("disabled", "disabled")
            $(this).addClass("change_color")
            $(function () {
                var last_time = 10

                if (last_time != 0) {
                    var set_time = setInterval(function () {
                        last_time--
                        str = "剩余" + last_time + "秒"
                        $("#submit2").prop("value", str)
                        if (last_time == 0) {
                            clearInterval(set_time)
                            $("#submit2").removeClass("change_color")
                            $("#submit2").prop("value", "重新发送")
                        }
                    }, 1000)

                }

            })


            //规定时间后可以点击
            setTimeout(function () {
                console.log("我要执行了")
                $("#submit2").removeAttr("disabled")
            }, 10000)
        } else {
            $(this).next().html("有必填项为空值").show()
            check_email = false
        }
    })
    $("#submit3").click(function () {
            $.post(
                "/register/", {
                    "username": username,
                    "password": password,
                    "email": email,
                    csrfmiddlewaretoken: '{{ csrf_token }}'
                }, function (res) {
                    if (res.status_num == 0) {
                        window.location.href = "/login/"
                        check_email = 1
                    } else {
                        $("#submit2").next().html(res.msg).show()
                        check_email = 0
                    }
                }
            )


        }
    )

})








